package io.geekidea.boot.shop.service.base.api;

import com.baomidou.mybatisplus.extension.service.IService;
import io.geekidea.boot.framework.page.Paging;
import io.geekidea.boot.shop.dto.CollectDto;
import io.geekidea.boot.shop.entity.Collect;
import io.geekidea.boot.shop.query.app.AppCollectQuery;
import io.geekidea.boot.shop.query.web.CollectQuery;
import io.geekidea.boot.shop.vo.app.AppCollectVo;
import io.geekidea.boot.shop.vo.web.CollectVo;


/**
 * 收藏 服务接口
 *
 * @author geekidea
 * @since 2024-10-27
 */
public interface CollectService extends IService<Collect> {

    /**
     * 添加收藏
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean addCollect(CollectDto dto);

    /**
     * 修改收藏
     *
     * @param dto
     * @return
     * @throws Exception
     */
    boolean updateCollect(CollectDto dto);

    /**
     * 删除收藏
     *
     * @param id
     * @return
     * @throws Exception
     */
    boolean deleteCollect(Integer id);

    /**
     * 收藏详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    CollectVo getCollectById(Integer id);

    /**
     * 收藏分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<CollectVo> getCollectPage(CollectQuery query);

    /**
     * App收藏详情
     *
     * @param id
     * @return
     * @throws Exception
     */
    AppCollectVo getAppCollectById(Integer id);

    /**
     * App收藏分页列表
     *
     * @param query
     * @return
     * @throws Exception
     */
    Paging<AppCollectVo> getAppCollectPage(AppCollectQuery query);

}
